package com.aid.winter.service;

import com.aid.winter.dto.request.LoginRequest;
import com.aid.winter.dto.request.PasswordUpdateRequest;
import com.aid.winter.dto.request.UserCreateRequest;
import com.aid.winter.dto.request.UserUpdateRequest;
import com.aid.winter.dto.response.LoginVO;
import com.aid.winter.dto.response.PageResult;
import com.aid.winter.dto.response.UserVO;
import com.aid.winter.entity.SysUser;

public interface SysUserService {
    
    /**
     * 用户登录
     */
    LoginVO login(LoginRequest request);
    
    /**
     * 获取当前登录用户
     */
    SysUser getCurrentUser();
    
    /**
     * 根据ID获取用户
     */
    SysUser getUserById(Long id);
    
    /**
     * 退出登录
     */
    void logout();
    
    /**
     * 创建用户
     */
    UserVO createUser(UserCreateRequest request);
    
    /**
     * 更新用户信息
     */
    UserVO updateUser(Long id, UserUpdateRequest request);
    
    /**
     * 修改密码
     */
    void updatePassword(Long id, PasswordUpdateRequest request);
    
    /**
     * 重置密码
     */
    void resetPassword(Long id);
    
    /**
     * 更新用户状态
     */
    void updateStatus(Long id, Integer status);
    
    /**
     * 查询用户列表
     */
    PageResult<UserVO> listUsers(Integer roleType, String username, String realName, 
                                Integer pageNum, Integer pageSize);
} 